package com.atguigu.gulimail.product.service.dubbo;

import com.atguigu.common.service.product.ProviderProductService;
import com.atguigu.common.utils.R;
import com.atguigu.gulimail.product.dao.SkuInfoDao;
import com.atguigu.gulimail.product.dao.SkuSaleAttrValueDao;
import com.atguigu.gulimail.product.dao.SpuInfoDao;
import com.atguigu.gulimail.product.entity.SkuInfoEntity;
import com.atguigu.gulimail.product.entity.SpuInfoEntity;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author fangy
 * @date 2022-10-12 20:21
 */
@DubboService
public class ProviderProductServiceImpl implements ProviderProductService {

    @Autowired
    private SkuInfoDao skuInfoDao;

    @Autowired
    private SpuInfoDao spuInfoDao;

    @Autowired
    private SkuSaleAttrValueDao skuSaleAttrValueDao;

    @Override
    public R getSkuEntityById(Long skuId) {
        SkuInfoEntity byId = skuInfoDao.selectById(skuId);
        return R.ok().setData(byId);
    }

    @Override
    public R getSkuAttrBySkuId(Long skuId) {
        List<String> byId = skuSaleAttrValueDao.getSkuAttrBySkuId(skuId);

        return R.ok().setData(byId);
    }

    @Override
    public BigDecimal getSkuPrice(Long skuId) {
        SkuInfoEntity skuInfoEntity = skuInfoDao.selectById(skuId);
        return skuInfoEntity.getPrice();
    }

    @Override
    public R getSpuInfoBySkuId(Long SkuId) {

        SkuInfoEntity skuInfoEntity = skuInfoDao.selectById(SkuId);
        Long spuId = skuInfoEntity.getSpuId();
        SpuInfoEntity spuInfoEntity = spuInfoDao.selectById(spuId);

        return R.ok().setData(spuInfoEntity);
    }
}
